using System;
using System.IO;
using lucere.io;
using lucere.io.concurrency;

namespace lucere.test.io.mock
{
	public class FSDirectoryMock:IFSDirectory
	{
		private readonly ILockFactory factory;

		public FSDirectoryMock(ILockFactory factory)
		{
			this.factory = factory;
		}

		public  ILockFactory LockFactory
		{
			get { return factory;}
			set { ; }
		}

		public string[] ListAll()
		{
			throw new NotImplementedException();
		}

		public bool FileExists(string name)
		{
			throw new NotImplementedException();
		}

		public long FileModified(string name)
		{
			throw new NotImplementedException();
		}

		public void TouchFile(string name)
		{
			throw new NotImplementedException();
		}

		public void DeleteFile(string name)
		{
			throw new NotImplementedException();
		}

		public long FileLength(string name)
		{
			throw new NotImplementedException();
		}

		public IIndexOutput CreateOutput(string name)
		{
			throw new NotImplementedException();
		}

		public void Sync(string name)
		{
			throw new NotImplementedException();
		}

		public IIndexInput OpenInput(string name)
		{
			throw new NotImplementedException();
		}

		public ILock MakeLock(string name)
		{
			throw new NotImplementedException();
		}

		public void ClearLock(string name)
		{
			throw new NotImplementedException();
		}

		public string LockId
		{
			get { throw new NotImplementedException(); }
		}

		public void Copy(IDirectory src, IDirectory dest, bool closeDirSrc)
		{
			throw new NotImplementedException();
		}

		public void Dispose()
		{
			throw new NotImplementedException();
		}

		ILockFactory IDirectory.LockFactory { get; set; }
		public void CreateDir()
		{
			throw new NotImplementedException();
		}

		public IFSDirectory Open(FileInfo path)
		{
			throw new NotImplementedException();
		}

		public IFSDirectory Open(FileInfo path, ILockFactory lockFactory)
		{
			throw new NotImplementedException();
		}

		public string[] ListAll(DirectoryInfo directory)
		{
			throw new NotImplementedException();
		}

		public long FileModified(DirectoryInfo directory, string fileName)
		{
			throw new NotImplementedException();
		}

		public DirectoryInfo DirectoryInfo
		{
			get { throw new NotImplementedException(); }
		}

		public int ReadChunkSize
		{
			get { throw new NotImplementedException(); }
			set { throw new NotImplementedException(); }
		}
	}
}